package com.budwk.app.sqfwV2.dto.entity;

import com.budwk.starter.common.openapi.annotation.ApiModel;
import com.budwk.starter.common.openapi.annotation.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@Accessors(chain = true)
@Table("shequ.sqfw_household_registration_info")
@Comment("户信息表(以户口为单位)")
@ApiModel(description = "户信息表(以户口为单位)")
public class SqfwHouseholdRegistrationInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Column
    @Name
    @Comment("编号")
    @ApiModelProperty(description = "ID")
    @ColDefine(type = ColType.VARCHAR, width = 32)
    @PrevInsert(els = {@EL("snowflake()")}, nullEffective = true)
    private String id;

    @Column("house_type")
    @Comment("当前户类型(脱贫户,监测户,边缘易致贫户,突发严重困难户）多个用,号)")
    @ApiModelProperty(description = "户类型")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String houseType;

    @Column("province")
    @Comment("省份")
    @ApiModelProperty(description = "省份")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String province;

    @Column("city")
    @Comment("城市")
    @ApiModelProperty(description = "城市")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String city;

    @Column("district")
    @Comment("区")
    @ApiModelProperty(description = "区")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String district;

    @Column("county")
    @Comment("县")
    @ApiModelProperty(description = "县")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String county;

    @Column("community")
    @Comment("社区")
    @ApiModelProperty(description = "社区")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String community;


    @Column("house_number")
    @Comment("户编码")
    @ApiModelProperty(description = "户编码")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String houseNumber;


    @Column("door_number")
    @Comment("户门牌详址")
    @ApiModelProperty(description = "户门牌详址")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String doorNumber;


    @Column("room_number")
    @Comment("房号")
    @ApiModelProperty(description = "房号")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String roomNumber;


    @Column("house_risks")
    @Comment("房屋隐患")
    @ApiModelProperty(description = "房屋隐患")
    @ColDefine(type = ColType.VARCHAR, width = 300)
    private String houseRisks;

    @Column("town_street")
    @Comment("乡街")
    @ApiModelProperty(description = "乡街")
    @ColDefine(type = ColType.VARCHAR, width = 300)
    private String townStreet;

    @Column("village")
    @Comment("村居")
    @ApiModelProperty(description = "村居")
    @ColDefine(type = ColType.VARCHAR, width = 300)
    private String village;

    @Column("detail_address")
    @Comment("详细地址")
    @ApiModelProperty(description = "详细地址")
    @ColDefine(type = ColType.VARCHAR, width = 300)
    private String detailAddress;


    @Column("create_by")
    @Comment("提交人")
    @ApiModelProperty(description = "提交人")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String createBy;

    @Column("create_time")
    @Comment("提交时间")
    @ApiModelProperty(description = "提交时间")
    @ColDefine(type = ColType.DATETIME, width = 50)
    private LocalDateTime createTime;

    @Column("update_id")
    @Comment("修改人")
    @ApiModelProperty(description = "修改人")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String updateId;

    @Column("update_time")
    @Comment("修改时间")
    @ApiModelProperty(description = "修改时间")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private LocalDateTime updateTime;

    @Column("delete_reason")
    @Comment("删除原因")
    @ApiModelProperty(description = "删除原因")
    @ColDefine(type = ColType.BOOLEAN, width = 300)
    private String deleteReason;

    @Column("deleted")
    @Comment("是否删除")
    @ApiModelProperty(description = "是否删除")
    @ColDefine(type = ColType.BOOLEAN, width = 50)
    private Boolean deleted = false;

    @Column("household_head")
    @Comment("户主")
    @ApiModelProperty(description = "户主")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String householdHead;

    @Column("household_head_card")
    @Comment("户主身份证")
    @ApiModelProperty(description = "户主身份证")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String householdHeadCard;

    @Column("people_number")
    @Comment("户口人数")
    @ApiModelProperty(description = "户口人数")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String peopleNumber;

    @Column("param_data")
    @Comment("其他参数")
    @ApiModelProperty(description = "其他参数")
    @ColDefine(type = ColType.TEXT)
    private String paramData;

    @Column("check_date")
    @Comment("检查时间，格式yyyy-mm,此字段用于当季度是否检查过")
    @ApiModelProperty(description = "检查时间，格式yyyy-mm")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String checkDate;
}
